/**
 * 
 */
package org.dearsor.elective.repository;

import java.io.Serializable;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.dearsor.elective.service.CourseMgrImpl;
import org.springframework.dao.DataAccessException;

/**
 * @author dearshor
 * @param <T> object to manipulate
 *
 */
public interface GenericRepository<T> {
	
	public static final Log log = LogFactory.getLog(CourseMgrImpl.class);
	
	void persist(T obj) throws DataAccessException ;
	
	T merge(T obj) throws DataAccessException ;
	
	void remove(T obj) throws DataAccessException;
	
	T find(Class<T> clazz,Serializable id) throws DataAccessException ;

}
